package main

import (
	"fmt"
	"strings"
)

func main() {
	// \反斜线本来是具有特殊含义的，我应该告诉程序我写的\就是一个单床的、
	path := "E:\\迅雷下载\\WPF_JJDown_v1.229.1\\[WPF]JJDown\\"
	fmt.Println(path)

	//   \"   添加双引号
	path1 := "\"E:\\迅雷下载\\WPF_JJDown_v1.229.1\\[WPF]JJDown\\\""
	fmt.Println(path1)

	//双引号里面的单引号不需要再使用\'
	path2 := "'E:\\迅雷下载\\WPF_JJDown_v1.229.1\\[WPF]JJDown\\'"
	fmt.Println(path2)
	fmt.Printf("%#v \n", path)
	s := "I'm ok"
	fmt.Println(s)

	// \t制表符 相当于按了一下tab键
	s1 := "I\tam\tOK"
	fmt.Println(s1)

	// \r 回车符 返回行首,类似python中\r  覆盖之前的
	s2 := "世情薄\r人情恶\r雨送黄昏花易落"
	fmt.Println(s2)

	// 多行的字符串
	s3 := `
	世情薄
	人情恶
	雨送黄昏花易落
	`
	fmt.Println(s3)

	s4 := `E:\迅雷下载\WPF_JJDown_v1.229.1\[WPF]JJDown\Download\k8s(Kubernetes)基础之Go语言开发入门教程`
	fmt.Println(s4)

	//字符串相关操作
	s5 := "zhaojinding"
	fmt.Println(len(s5))

	//字符串拼接
	name := "理想1"
	world := "dxs"
	ss := name + world
	fmt.Println(name + world)
	fmt.Println(ss)
	fmt.Printf("%s%s", name, world)
	//fmt.Sprintf("%s%s", name, world)

	//分割
	ret := strings.Split(s4, "\\")
	fmt.Println(ret)

	//包含
	fmt.Println(strings.Contains(name, "理想"))
	fmt.Println(strings.Contains(name, "理想2"))

	//前缀判断和后缀判断
	fmt.Println(strings.HasPrefix(name, "理"))
	fmt.Println(strings.HasSuffix(name, "1"))
	fmt.Println(strings.HasSuffix(name, "想"))

	//子串出现的位置,从0开始
	s6 := "abc1deb"
	fmt.Println(strings.Index(s6, "c"))
	fmt.Println(strings.Index(s6, "b"))
	fmt.Println(strings.LastIndex(s6, "b"))
	//一个汉字占用3个byte（字节）
	s7 := "我的天空我"
	fmt.Println(strings.LastIndex(s7, "我"))

	//join拼接
	fmt.Println(strings.Join(ret, "+"))
}
